package cliente.pagina.contenido.ExamenAutoexamen.Docente;

import java.sql.Timestamp;
import helpers.examenAutoexamen.HelperExamenAutoexamen;
import comun.constantes.ACCIONES_A_REALIZAR;
import comun.constantes.CARPETAS_ARCHIVOS_RECURSO;
import comun.constantes.PARAMETROS_PAGINAS;
import comun.constantes.RECURSOS;
import comun.constantes.TEXTOS;
import comun.constantes.TIPO_PERMISOS;
import cliente.pagina.Pagina;
import cliente.pagina.contenido.VistaContenido;

public class ContenidoVerExamen extends VistaContenido  {
	
	public ContenidoVerExamen() {
	}
	
	protected String getSubcarpetaRecurso() {
		return CARPETAS_ARCHIVOS_RECURSO.EVALUACIONES+"/";
	}
	
	public ContenidoVerExamen(Pagina pagina) {
		super(pagina);
		this.setPermisoEscritura(this.getPagina().obtenerPermisoRecurso(this.getNombreRecurso()).compareTo(TIPO_PERMISOS.ESCRITURA)==0);
	}
	
	public String getNombreRecurso() {
		return RECURSOS.EVALUACIONES; 
	}
	
	public String getHTMLVista() {
		String html="";
		HelperExamenAutoexamen helperEA = new HelperExamenAutoexamen(this.getPagina());
		try{
			Long idEvaluacion=null;
			String idEval = this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_EVALUACION);
			if(idEval!=null) idEvaluacion=new Long(idEval);
			String esEx=this.getPagina().getParameter("exAutoex");
			String vistaEx =this.getPagina().getParameter("vistaEvaluacion");
			boolean esCuest=false;
			if(esEx==null) esCuest=true;
			boolean esExamen=false;
			if(esEx!=null && esEx.compareTo("true")==0) esExamen=true;
			if(esEx!=null && esEx.compareTo("false")==0) esExamen=false;
			String accioncab = this.getPagina().getParameter(PARAMETROS_PAGINAS.ACCION_EX);
			this.procesarAccionEvaluacion(accioncab);
			String accioncab2 = this.getPagina().getParameter(PARAMETROS_PAGINAS.ACCION_AUTOEX);
			this.procesarAccionEvaluacion(accioncab2);
			String accioncab3 = this.getPagina().getParameter(PARAMETROS_PAGINAS.ACCION_CUEST);
			this.procesarAccionEvaluacion(accioncab3);
			String mod_cab = this.getPagina().getParameter("ap_btn_modif");
			boolean editar=false;
			if(mod_cab!=null) editar=true;
			html+="       <h1>"+this.getTitulo()+"</h1>\n";
			if(vistaEx.compareTo("DocenteEscritura")==0){
				ContenidoCrearExamenAutoexamen contenidoCrear= new ContenidoCrearExamenAutoexamen();
				if (esEx==null){
					html+=helperEA.getHTMLVerCuestionarioEscritura(idEvaluacion,editar,(accioncab3!=null));
					html+=helperEA.getHTMLVolverGestionDocente("Cuestionarios");
				}else{
					html+=helperEA.getHTMLVerExamenEscritura(idEvaluacion,esExamen,editar,(accioncab!=null||accioncab2!=null));
					if(esExamen) html+=helperEA.getHTMLVolverGestionDocente("Examenes");
					else html+=helperEA.getHTMLVolverGestionDocente("Autoexamenes");
				}
			}
			if(vistaEx.compareTo("DocenteLectura")==0){
				if (esEx==null)
					html+=helperEA.getHTMLVerCuestionarioLectura(idEvaluacion);
				else
					html+=helperEA.getHTMLVerExamenLectura(idEvaluacion,esExamen);
			}
			if(vistaEx.compareTo("Docente")==0){
				if (esEx==null)
					html+=helperEA.getHTMLVerCuestionario(idEvaluacion);
				else
					html+=helperEA.getHTMLVerExamen(idEvaluacion,esExamen);
			}
			if(vistaEx.compareTo("Alumno")==0){
				if(!esCuest){
					String guardarDatos = this.getPagina().getParameter("guardarEx");
					if(guardarDatos==null){
					Timestamp tiempo = helperEA.obtenerTiempoExamen(esExamen,idEvaluacion);
					Timestamp tAdv = helperEA.obtenerTiempoAdvExamen(esExamen,idEvaluacion);
					if(tiempo!=null)
						html += this.codJS_Reloj(esExamen,tiempo.getHours(),tiempo.getMinutes(),tiempo.getSeconds(),tAdv.getHours(),tAdv.getMinutes(),tAdv.getSeconds()); 
					html+=helperEA.getHTMLMostrarExamen(idEvaluacion,null,esExamen,false);
					}else{
						html+=helperEA.getHTMLRealizacionExamDocente(idEvaluacion,esExamen);
					}
				}else{
					html+=helperEA.getHTMLMostrarCuest(idEvaluacion,false);
				}		  
			}
			if(vistaEx.compareTo("RespuestasCuestionario")==0){
				html+=helperEA.getHTMLVerRespuestasCuestionario(idEvaluacion);
			}
			if(vistaEx.compareTo("RespuestasAutoexamen")==0){
				html+=helperEA.getHTMLVerRespuestasAutoexamen(idEvaluacion);
			}
			if(vistaEx.compareTo("RespuestasAlumno")==0){
				String idExFin =this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_EXFIN);
				html+=helperEA.getHTMLVerRespuestasAlumno(new Long(idExFin));
			}
			if(vistaEx.compareTo("VistaPreviaPreguntaCF")==0){
				html+=helperEA.getHTMLVistaPreviaPregCF();
			}
			if(vistaEx.compareTo("EvaluacionExportar")==0){
				if(!esCuest){
					html+=helperEA.getHTMLExportarExamenAutoexamen(idEvaluacion,esExamen);
				}else{
				//html+=helperEA.getHTMLExportarCuestionario();
				}
			}
			helperEA.commit();
		}catch(Exception ex){
			ex.printStackTrace();
			helperEA.rollback();
			return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
		}
		return html;
	}
	
	private void procesarAccionEvaluacion (String accion) throws Exception{
		HelperExamenAutoexamen helperExA = new HelperExamenAutoexamen(this.getPagina());
		try{
		//	System.out.println("ACCION DE CABECERA EX:   " + accion);
			if(accion!=null && accion.compareTo(ACCIONES_A_REALIZAR.MODIFICAR_CAB_EXAMEN)==0){
				helperExA.agregarModificarCabeceraEx();
			}
			if(accion!=null && accion.compareTo(ACCIONES_A_REALIZAR.MODIFICAR_CAB_AUTOEXAMEN)==0){
				helperExA.agregarModificarCabeceraAutoex();
			}
			if(accion!=null && accion.compareTo(ACCIONES_A_REALIZAR.MODIFICAR_CAB_CUESTIONARIO)==0){
				helperExA.agregarModificarCabeceraCuest();
			}
			helperExA.commit();
		}catch(Exception ex){
			ex.printStackTrace();
			helperExA.rollback();
			throw ex;
		}
	}
	
	public String getTitulo() {
		String esEx=this.getPagina().getParameter("exAutoex");
		String titulo="";
		if(esEx==null){
			titulo= TEXTOS.VER_CUESTIONARIO;
		}else{
			if(esEx!=null && esEx.compareTo("true")==0){
				titulo=TEXTOS.VER_EXAMEN;
			}
			if(esEx!=null && esEx.compareTo("false")==0){
				titulo=TEXTOS.VER_AUTOEXAMEN;
			}	
		}		
		return titulo;
	}
	
	protected String getNombrePagina() {
		return "verexamen.jsp";
	}
	
	public String getTituloLink() {
		return null;
	}
	
	public String codJS_Reloj(boolean esExamen, int hr, int min, int seg, int hrAdv, int minAdv, int segAdv){
		String retorno="";
		if(esExamen){
			retorno += "\n"+
			"<script type=\"text/javascript\">\n"+
			"function popUp(URL, nombre) {\n"+
			"	window.open(URL, nombre, 'toolbar=0,Scrollbars=NO,location=0,statusbar=0,menubar=0,resizable=0,width=200,height=150,left=300,top=150,dependent=yes');\n"+
			"}\n"+
			"hr="+hr+"\n"+
			"min="+min+"\n"+
			"seg="+seg+"\n"+
			"hrAdv="+hrAdv+"\n"+
			"minAdv="+minAdv+"\n"+
			"segAdv="+segAdv+"\n"+
			"function timer1(){\n"+
			"if(hr>9) document.form1.time1.value=hr;\n"+
			"else document.form1.time1.value='0'+hr;\n"+
			"if(min>9) document.form1.time2.value=min;\n"+
			"else document.form1.time2.value='0'+min;\n"+
			"if(seg>9) document.form1.time3.value=seg;\n"+
			"else document.form1.time3.value='0'+seg;\n"+
			"if((hr<=0) && (min <=0) &&(seg<=0)) {\n"+
			"	clearInterval();" +
			"   document.EntregarExamen.submit(); "+
			"}\n"+
			"else{\n"+
			"	if(seg>0) {\n"+
			"		seg--;\n"+
			"	} else { \n"+
			"		seg =59;\n"+
			"		if(min > 0) {\n"+
			"			min--;\n"+
			"		} else {\n"+
			"			min=59;\n"+
			"			hr--;\n"+
			"		}\n"+
			"	}\n"+
			"   if((hr==hrAdv) && (min==minAdv) && (seg==segAdv)){\n"+
            "      popUp('"+this.getPagina().getPathRaiz()+"advExamen.jsp?&hrAdv="+hrAdv+"&minAdv="+minAdv+"&segAdv="+segAdv+"','atencion');\n"+
            "   }\n"+
			"}\n"+
			"}\n"+
			"setInterval(\"timer1()\",1000);\n"+
			"</script>\n";
		}
		return retorno;
	}
	
	public String getTeclaAccesoRapido() {
		// TODO Auto-generated method stub
		return "";
	}
	
}
